package com.ydgg.ltar.controller;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import com.alibaba.fastjson.JSON;
import com.ydgg.ltar.model.ArBuilding;
import com.ydgg.ltar.util.PageInfo;
import com.ydgg.ltar.util.Result;

/**
 * AR识楼
 * 作者： 张叶
 * 创建时间：2018年12月6日  上午10:36:22
 */
@Controller
@RequestMapping("admin/arBuilding")
public class ArBuildingController extends BaseController{
	

	/**
	 * 列表
	 * 作者： 张叶
	 * 创建时间：2018年11月29日  下午3:42:48
	 */
	@RequestMapping("list")
	public String list(Model model){
		return "admin/arBuilding/list";
	}
 
	
	/**
	 * 分页显示 
	 * 作者： 张叶
	 * 创建时间：2018年11月29日  下午3:42:52
	 */
	@ResponseBody
	@RequestMapping("arBuildingJson")
	public JSON arBuildingJson(PageInfo pageInfo, Integer rows, Integer page,
			String sidx, String sord, Model model, String name ) {
		// 分页信息
		if (pageInfo == null) {
			pageInfo = new PageInfo();
		}
		if (pageInfo.getPage() < 2
				|| pageInfo.getPage() >= pageInfo.getTotalPage()) {
			pageInfo.setCount(0);
		}
		if (rows != null) {// 每页显示条数
			pageInfo.setPageSize(rows);
		}
		if (page != null) {// 当前页
			pageInfo.setPage(page);
		}

		// 排序
		String order = " order by created_at desc";
		if (sidx != null && sidx != "") {// 排序字段
			order = " order by " + sidx + " ";
			if (sord != null && sord != "") {// 排序
				order += sord;
			}
		}
		String where = "1 = 1 and status != 'deleted'";

		if(name != null && !"".equals(name)){
			where += " and name like '%" + name + "%'";
		}
		
		List<Map<String, Object>> list = arBuildingService.selectByPage(pageInfo,where, order);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		for(int i = 0 ; i < list.size() ; i ++){
			Date createTime = (Date) list.get(i).get("created_at");
			list.get(i).put("created_at", sdf.format(createTime));
		}
		Map<String, Object> data = new HashMap<String, Object>();
		data.put("total", pageInfo.getTotalPage());
		data.put("list", list);
		return (JSON) JSON.toJSON(data);
	}


	
	/**
	 * 添加页面
	 * 作者： 张叶
	 * 创建时间：2018年11月28日  下午2:18:57
	 */
	@RequestMapping("/addPage")
	public String addPage(){
		return "admin/arBuilding/add";
	}

	
	/**
	 * 添加功能
	 * 作者： 张叶
	 * 创建时间：2018年5月11日  下午2:06:57
	 * @throws Exception 
	 */
	@ResponseBody
	@RequestMapping(value = "/add", method = RequestMethod.POST)
	public Result add(@RequestParam(value = "imageUrls", required = false) MultipartFile imageUrls,
			@RequestParam(value = "videoUrls", required = false) MultipartFile videoUrls,
			ArBuilding ab) {
		Result result = new Result();

		try {
			if(imageUrls.getBytes().length > 0 &&
					videoUrls.getBytes().length > 0){
				String imageUrl = qiniuService.upload("file", imageUrls.getOriginalFilename(),imageUrls.getBytes());
				String videoUrl = qiniuService.upload("file", videoUrls.getOriginalFilename(),videoUrls.getBytes());
				ab.setVideoUrl(videoUrl);
				ab.setImageUrl(imageUrl);
				result = arBuildingService.insert(ab);
			}else{
				result.code = 3;
				result.message = "请上传文件";
			}
		} catch (Exception e) {
			result.code = 2;
			result.message = "上传文件错误，请重试";
		}
		
		return result;
	}

	
	/**
	 * 修改页面
	 * 作者： 张叶
	 * 创建时间：2018年11月28日  下午2:26:51
	 */
	@RequestMapping("/updateArBuilding/{id}")
	public String updateArBuilding(@PathVariable("id") Long id,Model model){
		ArBuilding b = arBuildingService.selectByPrimaryKey(id);
		model.addAttribute("arBuilding",b);
		return "admin/arBuilding/update";
	}
	
	
	/**
	 * 修改功能
	 * 作者： 张叶
	 * 创建时间：2018年11月22日  下午2:31:41
	 */
	@ResponseBody
	@RequestMapping("/update")
	public Result update(@RequestParam(value = "imageUrls", required = false) MultipartFile imageUrls,
			@RequestParam(value = "videoUrls", required = false) MultipartFile videoUrls,
			ArBuilding ab,String regionCode2){
		Result result = new Result();
		try {
			if(imageUrls.getBytes().length > 0){
				String imageUrl = qiniuService.upload("file", imageUrls.getOriginalFilename(),imageUrls.getBytes());
				ab.setImageUrl(imageUrl);
			}
			if(videoUrls.getBytes().length > 0){

				String videoUrl = qiniuService.upload("file", videoUrls.getOriginalFilename(),videoUrls.getBytes());
				ab.setVideoUrl(videoUrl);
			}
		} catch (Exception e) {
		}
		int i = arBuildingService.updateBySelective(ab);
		if( i > 0){
			result.code = 0;
			result.message = "修改成功";
		}else{
			result.code = 1;
			result.message = "系统错误，修改失败";
		}
		return result;
	}
	
	
	/**
	 * 删除
	 * 作者： 张叶
	 * 创建时间：2018年11月30日  上午10:48:30
	 */
	@ResponseBody
	@RequestMapping(value = "/delArBuilding/{id}", method = RequestMethod.POST)
	public Result delArNavigation(@PathVariable Long id){
		Result result = new Result();
		ArBuilding b = arBuildingService.selectByPrimaryKey(id);
		if(b != null && !"".equals(b)){
			result = arBuildingService.deleted(b);
		}else{
			result.code = 2;
			result.message = "当前记录或已删除，请刷新后重试";
		}
		return result;
	}
	
}
